#ifndef USBLOADBOX_H_
#define USBLOADBOX_H_

 /* Includes: */
	#include <avr/io.h>
	#include <avr/wdt.h>
	#include <avr/power.h>
	#include <avr/interrupt.h>
	#include <avr/pgmspace.h>
	#include <avr/eeprom.h>
//	#include <avrlibdefs.h>
//	#include <avrlibtypes.h>
	#include <string.h>
	#include <stdio.h>
	#include <ctype.h>
	#include <util/delay.h>
//	#include <rprintf.h>

//	#include "Descriptors.h"
	#include <LUFA/Version.h>
	#include <LUFA/Drivers/USB/USB.h>
	#include <process_USB.h>
 
//	FreeRTOS include files
//	#include "FreeRTOS.h"
//	#include "task.h"
//	#include "croutine.h"
//	#include "FreeRTOSConfig.h"
 
	#include <i2csw.h>
	#include <LCD_7032i.h>
	#include "USB_Load_Box_Board.h"
	#include <Loadbox_scpi.h>
	#include <touch_interrupt.h>

// From externals
extern uint16_t	time_to_update_USB;
//void process_USB(void);
 
	#define EVER ;;

	void	SetupHardware(void);
	int		LCD_Put_Char (char the_char, FILE *stream);
	void	Run_Intro_Screen (IO_pointers_t IO);
	void	delay_100us (uint16_t delay);
//  void	MainTaskLoop(void);
//  void	vApplicationIdleHook(void);
//  void	vApplicationIdleHook(void);
//  static	void VirtualSerialTask(void *pvParameters);
//  static	void MainTask(void *pvParameters);

#endif
